home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 127 / PC Guia 127.iso / Software / Produtividade / OpenOffice.org 2.0.1 / openofficeorg4.cab / test_whichdb.py < prev    next >
Text File  |  2005-11-19  |  2KB  |  67 lines

  1. #! /usr/bin/env python
  2. """Test script for the whichdb module
  3.    based on test_anydbm.py
  4. """
  5.  
  6. import os
  7. import test.test_support
  8. import unittest
  9. import whichdb
  10. import anydbm
  11. import tempfile
  12. import glob
  13.  
  14. _fname = test.test_support.TESTFN
  15.  
  16. def _delete_files():
  17.     # we don't know the precise name the underlying database uses
  18.     # so we use glob to locate all names
  19.     for f in glob.glob(_fname + "*"):
  20.         try:
  21.             os.unlink(f)
  22.         except OSError:
  23.             pass
  24.  
  25. class WhichDBTestCase(unittest.TestCase):
  26.     # Actual test methods are added to namespace
  27.     # after class definition.
  28.     def __init__(self, *args):
  29.         unittest.TestCase.__init__(self, *args)
  30.  
  31.     def tearDown(self):
  32.         _delete_files()
  33.  
  34.     def setUp(self):
  35.         _delete_files()
  36.  
  37. for name in anydbm._names:
  38.     # we define a new test method for each
  39.     # candidate database module.
  40.     try:
  41.         mod = __import__(name)
  42.     except ImportError:
  43.         continue
  44.  
  45.     def test_whichdb_name(self, name=name, mod=mod):
  46.         # Check whether whichdb correctly guesses module name
  47.         # for databases opened with module mod.
  48.         # Try with empty files first
  49.         f = mod.open(_fname, 'c')
  50.         f.close()
  51.         self.assertEqual(name, whichdb.whichdb(_fname))
  52.         # Now add a key
  53.         f = mod.open(_fname, 'w')
  54.         f["1"] = "1"
  55.         f.close()
  56.         self.assertEqual(name, whichdb.whichdb(_fname))
  57.     setattr(WhichDBTestCase,"test_whichdb_%s" % name, test_whichdb_name)
  58.  
  59. def test_main():
  60.     try:
  61.         test.test_support.run_unittest(WhichDBTestCase)
  62.     finally:
  63.         _delete_files()
  64.  
  65. if __name__ == "__main__":
  66.     test_main()
  67.